import route from "@/routers/index";
import axios from "axios";

/**
 * 创建axios实例
 * @returns
 */
const service = axios.create({
  baseURL: "http://127.0.0.1:3001", // api的base_url
  timeout: 5000, // 请求超时时间
});
// 请求拦截
service.interceptors.request.use((config) => {
    console.log("请求拦截...");
  console.log(config);
  console.log(config.url.indexOf("login") < 0);
  //请求路径中是否包含注册和登录
  if (config.url.indexOf("login") < 0 && config.url.indexOf("register") < 0) {
    // 排除登录和注册接口，其他接口都需要携带token
    // 设置token
    console.log("token......");
    config.headers.Authorization = localStorage.getItem("token");
  }
  return config;
});
//响应拦截
service.interceptors.response.use((response) => {
  console.log("响应拦截...");
  console.log(response);
  const data = response.data;
  if (data.code == 0) {
    return data;
  } else {
    ElMessage({
      showClose: true,
      message: data.msg,
      type: "error",
    });
  }
  if (data.msg == "token身份验证失败") {
    // token失效,跳转到登录页
    route.push("/login");
  }
});
// 封装service请求
const request = (options) => {
  // 判断请求的方法是get
  if (options.method == "get") {
    // 将数据data放入到options.params中
    options.params = options.data;
  }
  return service(options);
};

export default request;
